package top.superflow.engine.api

import top.superflow.flow.runtime.flow.ExtFlow
import top.superflow.flow.runtime.inf.{GeneralRequest, GeneralResponse}

import scala.concurrent.Future

/**
 * Flow engine is responsible to manage the life cycle of flow
 * All task engines are managed in flow engine
 * All task engine instances are managed in flow engine
 */
trait FlowEngine extends Engine{
  

  def execute(flow : ExtFlow, request : GeneralRequest) : Future[GeneralResponse]

}